package leetcode_200;

import java.util.ArrayList;
import java.util.List;

/**
 *@author 周杨
 *PascalTriangle_118 构造杨辉三角第i行
 *describe:递归调用 AC 88%
 *2018年5月22日 下午2:03:40
 */
public class PascalTriangle_118 {
	int rowIndex;
	public static void main(String[] args) {
		PascalTriangle_118 test=new PascalTriangle_118();
		List<Integer> res=test.getRow(5);

	}
	
	public List<Integer> getRow(int rowIndex) {
		this.rowIndex=rowIndex;
		List<Integer> list=new ArrayList<Integer>();
		list.add(1);
        return help(list,1);
    }

	private List<Integer> help(List<Integer> list, int numRows) {
		if(numRows==this.rowIndex+1)
			return list;
		List<Integer> nowList=new ArrayList<Integer>();//当前生成第i行
		nowList.add(1);
		int count=(numRows+2)/2-1;//只计算一半 不算第一个  如第三行 计算2个  第五行 计算3个
		for(int i=0;i<count;++i) {
			nowList.add(list.get(i)+list.get(i+1));
		}
		int total=(numRows+1)%2==1?nowList.size()-1:nowList.size();//复制几个数
		for(int i=total-1;i>=0;--i) {//复制前面的
			nowList.add(nowList.get(i));
		}
		return help(nowList,numRows+1);
	}
}
